
module sbox_0 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_1 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_2 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_3 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_4 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_5 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_6 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_7 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_8 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_9 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_10 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_11 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_12 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_13 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_14 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module sbox_15 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module substitution ( data_o, data_i );
  output [63:0] data_o;
  input [63:0] data_i;


  sbox_15 substitution_sbox1 ( .data_o(data_o[3:0]), .data_i(data_i[3:0]) );
  sbox_14 substitution_sbox2 ( .data_o(data_o[7:4]), .data_i(data_i[7:4]) );
  sbox_13 substitution_sbox3 ( .data_o(data_o[11:8]), .data_i(data_i[11:8]) );
  sbox_12 substitution_sbox4 ( .data_o(data_o[15:12]), .data_i(data_i[15:12])
         );
  sbox_11 substitution_sbox5 ( .data_o(data_o[19:16]), .data_i(data_i[19:16])
         );
  sbox_10 substitution_sbox6 ( .data_o(data_o[23:20]), .data_i(data_i[23:20])
         );
  sbox_9 substitution_sbox7 ( .data_o(data_o[27:24]), .data_i(data_i[27:24])
         );
  sbox_8 substitution_sbox8 ( .data_o(data_o[31:28]), .data_i(data_i[31:28])
         );
  sbox_7 substitution_sbox9 ( .data_o(data_o[35:32]), .data_i(data_i[35:32])
         );
  sbox_6 substitution_sbox10 ( .data_o(data_o[39:36]), .data_i(data_i[39:36])
         );
  sbox_5 substitution_sbox11 ( .data_o(data_o[43:40]), .data_i(data_i[43:40])
         );
  sbox_4 substitution_sbox12 ( .data_o(data_o[47:44]), .data_i(data_i[47:44])
         );
  sbox_3 substitution_sbox13 ( .data_o(data_o[51:48]), .data_i(data_i[51:48])
         );
  sbox_2 substitution_sbox14 ( .data_o(data_o[55:52]), .data_i(data_i[55:52])
         );
  sbox_1 substitution_sbox15 ( .data_o(data_o[59:56]), .data_i(data_i[59:56])
         );
  sbox_0 substitution_sbox16 ( .data_o(data_o[63:60]), .data_i(data_i[63:60])
         );
endmodule


module permutation ( data_o, data_i );
  output [63:0] data_o;
  input [63:0] data_i;

  assign data_o[63] = data_i[63];
  assign data_o[62] = data_i[59];
  assign data_o[61] = data_i[55];
  assign data_o[60] = data_i[51];
  assign data_o[59] = data_i[47];
  assign data_o[58] = data_i[43];
  assign data_o[57] = data_i[39];
  assign data_o[56] = data_i[35];
  assign data_o[55] = data_i[31];
  assign data_o[54] = data_i[27];
  assign data_o[53] = data_i[23];
  assign data_o[52] = data_i[19];
  assign data_o[51] = data_i[15];
  assign data_o[50] = data_i[11];
  assign data_o[49] = data_i[7];
  assign data_o[48] = data_i[3];
  assign data_o[47] = data_i[62];
  assign data_o[46] = data_i[58];
  assign data_o[45] = data_i[54];
  assign data_o[44] = data_i[50];
  assign data_o[43] = data_i[46];
  assign data_o[42] = data_i[42];
  assign data_o[41] = data_i[38];
  assign data_o[40] = data_i[34];
  assign data_o[39] = data_i[30];
  assign data_o[38] = data_i[26];
  assign data_o[37] = data_i[22];
  assign data_o[36] = data_i[18];
  assign data_o[35] = data_i[14];
  assign data_o[34] = data_i[10];
  assign data_o[33] = data_i[6];
  assign data_o[32] = data_i[2];
  assign data_o[31] = data_i[61];
  assign data_o[30] = data_i[57];
  assign data_o[29] = data_i[53];
  assign data_o[28] = data_i[49];
  assign data_o[27] = data_i[45];
  assign data_o[26] = data_i[41];
  assign data_o[25] = data_i[37];
  assign data_o[24] = data_i[33];
  assign data_o[23] = data_i[29];
  assign data_o[22] = data_i[25];
  assign data_o[21] = data_i[21];
  assign data_o[20] = data_i[17];
  assign data_o[19] = data_i[13];
  assign data_o[18] = data_i[9];
  assign data_o[17] = data_i[5];
  assign data_o[16] = data_i[1];
  assign data_o[15] = data_i[60];
  assign data_o[14] = data_i[56];
  assign data_o[13] = data_i[52];
  assign data_o[12] = data_i[48];
  assign data_o[11] = data_i[44];
  assign data_o[10] = data_i[40];
  assign data_o[9] = data_i[36];
  assign data_o[8] = data_i[32];
  assign data_o[7] = data_i[28];
  assign data_o[6] = data_i[24];
  assign data_o[5] = data_i[20];
  assign data_o[4] = data_i[16];
  assign data_o[3] = data_i[12];
  assign data_o[2] = data_i[8];
  assign data_o[1] = data_i[4];
  assign data_o[0] = data_i[0];

endmodule


module sub_per ( data_o, data_i );
  output [63:0] data_o;
  input [63:0] data_i;

  wire   [63:0] s;

  substitution sub_per_substitution ( .data_o(s), .data_i(data_i) );
  permutation sub_per_permutation ( .data_o(data_o), .data_i(s) );
endmodule


module sbox_16 ( data_o, data_i );
  output [3:0] data_o;
  input [3:0] data_i;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58;

  GTECH_AND2 C20 ( .A(N40), .B(N15), .Z(N4) );
  GTECH_AND2 C21 ( .A(N4), .B(N0), .Z(N5) );
  GTECH_AND2 C22 ( .A(data_i[3]), .B(N1), .Z(N6) );
  GTECH_AND2 C23 ( .A(N6), .B(data_i[1]), .Z(N7) );
  GTECH_AND2 C25 ( .A(N6), .B(data_i[0]), .Z(N8) );
  GTECH_AND2 C27 ( .A(N40), .B(data_i[2]), .Z(N9) );
  GTECH_AND2 C28 ( .A(N9), .B(data_i[1]), .Z(N10) );
  GTECH_OR2 C38 ( .A(data_i[3]), .B(N1), .Z(N12) );
  GTECH_OR2 C39 ( .A(N15), .B(N0), .Z(N13) );
  GTECH_OR2 C40 ( .A(N12), .B(N13), .Z(N14) );
  GTECH_AND2 C42 ( .A(data_i[3]), .B(data_i[2]), .Z(N16) );
  GTECH_AND2 C43 ( .A(N16), .B(N15), .Z(N17) );
  GTECH_AND2 C44 ( .A(N1), .B(data_i[1]), .Z(N18) );
  GTECH_AND2 C45 ( .A(N18), .B(N0), .Z(N19) );
  GTECH_AND2 C46 ( .A(N40), .B(N1), .Z(N20) );
  GTECH_AND2 C47 ( .A(N20), .B(N15), .Z(N21) );
  GTECH_AND2 C48 ( .A(data_i[3]), .B(N15), .Z(N22) );
  GTECH_AND2 C49 ( .A(N22), .B(data_i[0]), .Z(N23) );
  GTECH_AND2 C57 ( .A(N20), .B(data_i[1]), .Z(N25) );
  GTECH_AND2 C58 ( .A(N40), .B(data_i[1]), .Z(N26) );
  GTECH_AND2 C59 ( .A(N26), .B(N0), .Z(N27) );
  GTECH_AND2 C61 ( .A(N16), .B(data_i[0]), .Z(N28) );
  GTECH_AND2 C63 ( .A(N6), .B(N15), .Z(N29) );
  GTECH_OR2 C72 ( .A(data_i[1]), .B(data_i[0]), .Z(N31) );
  GTECH_OR2 C73 ( .A(N12), .B(N31), .Z(N32) );
  GTECH_OR2 C77 ( .A(N40), .B(N1), .Z(N33) );
  GTECH_OR2 C78 ( .A(data_i[1]), .B(N0), .Z(N34) );
  GTECH_OR2 C79 ( .A(N33), .B(N34), .Z(N35) );
  GTECH_AND2 C83 ( .A(N20), .B(data_i[0]), .Z(N36) );
  GTECH_AND2 C84 ( .A(data_i[3]), .B(data_i[1]), .Z(N37) );
  GTECH_AND2 C85 ( .A(N37), .B(N0), .Z(N38) );
  GTECH_NOT I_0 ( .A(data_i[0]), .Z(N0) );
  GTECH_NOT I_1 ( .A(data_i[2]), .Z(N1) );
  GTECH_AND2 C96 ( .A(N41), .B(data_i[0]), .Z(N2) );
  GTECH_AND2 C97 ( .A(N40), .B(data_i[1]), .Z(N41) );
  GTECH_NOT I_2 ( .A(data_i[3]), .Z(N40) );
  GTECH_AND2 C99 ( .A(N42), .B(N0), .Z(N3) );
  GTECH_AND2 C100 ( .A(data_i[3]), .B(N1), .Z(N42) );
  GTECH_OR2 C102 ( .A(N5), .B(N45), .Z(N11) );
  GTECH_OR2 C103 ( .A(N7), .B(N44), .Z(N45) );
  GTECH_OR2 C104 ( .A(N8), .B(N43), .Z(N44) );
  GTECH_OR2 C105 ( .A(N10), .B(N2), .Z(N43) );
  GTECH_BUF B_0 ( .A(N11), .Z(data_o[3]) );
  GTECH_NOT I_3 ( .A(data_i[1]), .Z(N15) );
  GTECH_OR2 C108 ( .A(N46), .B(N49), .Z(N24) );
  GTECH_NOT I_4 ( .A(N14), .Z(N46) );
  GTECH_OR2 C110 ( .A(N17), .B(N48), .Z(N49) );
  GTECH_OR2 C111 ( .A(N19), .B(N47), .Z(N48) );
  GTECH_OR2 C112 ( .A(N21), .B(N23), .Z(N47) );
  GTECH_BUF B_1 ( .A(N24), .Z(data_o[2]) );
  GTECH_OR2 C114 ( .A(N25), .B(N52), .Z(N30) );
  GTECH_OR2 C115 ( .A(N27), .B(N51), .Z(N52) );
  GTECH_OR2 C116 ( .A(N28), .B(N50), .Z(N51) );
  GTECH_OR2 C117 ( .A(N29), .B(N3), .Z(N50) );
  GTECH_BUF B_2 ( .A(N30), .Z(data_o[1]) );
  GTECH_OR2 C119 ( .A(N53), .B(N58), .Z(N39) );
  GTECH_NOT I_5 ( .A(N32), .Z(N53) );
  GTECH_OR2 C121 ( .A(N54), .B(N57), .Z(N58) );
  GTECH_NOT I_6 ( .A(N35), .Z(N54) );
  GTECH_OR2 C123 ( .A(N36), .B(N56), .Z(N57) );
  GTECH_OR2 C124 ( .A(N2), .B(N55), .Z(N56) );
  GTECH_OR2 C125 ( .A(N3), .B(N38), .Z(N55) );
  GTECH_BUF B_3 ( .A(N39), .Z(data_o[0]) );
endmodule


module key_update ( data_o, data_i, round_counter );
  output [79:0] data_o;
  input [79:0] data_i;
  input [4:0] round_counter;
  wire   data_i_18, data_i_17, data_i_16, data_i_15;
  assign data_o[75] = data_i[14];
  assign data_o[74] = data_i[13];
  assign data_o[73] = data_i[12];
  assign data_o[72] = data_i[11];
  assign data_o[71] = data_i[10];
  assign data_o[70] = data_i[9];
  assign data_o[69] = data_i[8];
  assign data_o[68] = data_i[7];
  assign data_o[67] = data_i[6];
  assign data_o[66] = data_i[5];
  assign data_o[65] = data_i[4];
  assign data_o[64] = data_i[3];
  assign data_o[63] = data_i[2];
  assign data_o[62] = data_i[1];
  assign data_o[61] = data_i[0];
  assign data_o[60] = data_i[79];
  assign data_o[59] = data_i[78];
  assign data_o[58] = data_i[77];
  assign data_o[57] = data_i[76];
  assign data_o[56] = data_i[75];
  assign data_o[55] = data_i[74];
  assign data_o[54] = data_i[73];
  assign data_o[53] = data_i[72];
  assign data_o[52] = data_i[71];
  assign data_o[51] = data_i[70];
  assign data_o[50] = data_i[69];
  assign data_o[49] = data_i[68];
  assign data_o[48] = data_i[67];
  assign data_o[47] = data_i[66];
  assign data_o[46] = data_i[65];
  assign data_o[45] = data_i[64];
  assign data_o[44] = data_i[63];
  assign data_o[43] = data_i[62];
  assign data_o[42] = data_i[61];
  assign data_o[41] = data_i[60];
  assign data_o[40] = data_i[59];
  assign data_o[39] = data_i[58];
  assign data_o[38] = data_i[57];
  assign data_o[37] = data_i[56];
  assign data_o[36] = data_i[55];
  assign data_o[35] = data_i[54];
  assign data_o[34] = data_i[53];
  assign data_o[33] = data_i[52];
  assign data_o[32] = data_i[51];
  assign data_o[31] = data_i[50];
  assign data_o[30] = data_i[49];
  assign data_o[29] = data_i[48];
  assign data_o[28] = data_i[47];
  assign data_o[27] = data_i[46];
  assign data_o[26] = data_i[45];
  assign data_o[25] = data_i[44];
  assign data_o[24] = data_i[43];
  assign data_o[23] = data_i[42];
  assign data_o[22] = data_i[41];
  assign data_o[21] = data_i[40];
  assign data_o[20] = data_i[39];
  assign data_o[14] = data_i[33];
  assign data_o[13] = data_i[32];
  assign data_o[12] = data_i[31];
  assign data_o[11] = data_i[30];
  assign data_o[10] = data_i[29];
  assign data_o[9] = data_i[28];
  assign data_o[8] = data_i[27];
  assign data_o[7] = data_i[26];
  assign data_o[6] = data_i[25];
  assign data_o[5] = data_i[24];
  assign data_o[4] = data_i[23];
  assign data_o[3] = data_i[22];
  assign data_o[2] = data_i[21];
  assign data_o[1] = data_i[20];
  assign data_o[0] = data_i[19];
  assign data_i_18 = data_i[18];
  assign data_i_17 = data_i[17];
  assign data_i_16 = data_i[16];
  assign data_i_15 = data_i[15];

  sbox_16 key_update_sbox ( .data_o(data_o[79:76]), .data_i({data_i_18, 
        data_i_17, data_i_16, data_i_15}) );
  GTECH_XOR2 C11 ( .A(data_i[38]), .B(round_counter[4]), .Z(data_o[19]) );
  GTECH_XOR2 C12 ( .A(data_i[37]), .B(round_counter[3]), .Z(data_o[18]) );
  GTECH_XOR2 C13 ( .A(data_i[36]), .B(round_counter[2]), .Z(data_o[17]) );
  GTECH_XOR2 C14 ( .A(data_i[35]), .B(round_counter[1]), .Z(data_o[16]) );
  GTECH_XOR2 C15 ( .A(data_i[34]), .B(round_counter[0]), .Z(data_o[15]) );
endmodule


module present_encryptor_top ( data_o, data_i, data_load, key_load, clk, 
        encry_ok );
  output [63:0] data_o;
  input [79:0] data_i;
  input data_load, key_load, clk;
  output encry_ok;
  wire   N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10, N11, N12, N13, N14, N15,
         N16, N17, N18, N19, N20, N21, N22, N23, N24, N25, N26, N27, N28, N29,
         N30, N31, N32, N33, N34, N35, N36, N37, N38, N39, N40, N41, N42, N43,
         N44, N45, N46, N47, N48, N49, N50, N51, N52, N53, N54, N55, N56, N57,
         N58, N59, N60, N61, N62, N63, N64, N65, N66, N67, N68, N69, N70, N71,
         N72, N73, N74, N75, N76, N77, N78, N79, N80, N81, N82, N83, N84, N85,
         N86, N87, N88, N89, N90, N91, N92, N93, N94, N95, N96, N97, N98, N99,
         N100, N101, N102, N103, N104, N105, N106, N107, N108, N109, N110,
         N111, N112, N113, N114, N115, N116, N117, N118, N119, N120, N121,
         N122, N123, N124, N125, N126, N127, N128, N129, N130, N131, N132,
         N133, N134, N135, N136, N137, N138, N139, N140, N141, N142, N143,
         N144, N145, N146, N147, N148, N149, N150, N151, N152, N153, N154,
         N155, N156, N157, N158, N159, N160, N161, N162, N163, N164, N165,
         N166, N167, N168, N169, N170, N171, N172, N173, N174, N175;
  wire   [63:0] sub_per_output;
  wire   [79:0] key_update_output;
  wire   [79:0] key;
  wire   [4:0] round_counter;
  wire   [63:0] state;

  sub_per present_cipher_sp ( .data_o(sub_per_output), .data_i(data_o) );
  key_update present_cipher_key_update ( .data_o(key_update_output), .data_i(
        key), .round_counter(round_counter) );
  \**SEQGEN**  encry_ok_reg ( .clear(1'b0), .preset(1'b0), .next_state(N6), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(encry_ok), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N164) );
  \**SEQGEN**  \round_counter_reg[4]  ( .clear(1'b0), .preset(1'b0), 
        .next_state(N79), .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(
        round_counter[4]), .QN(), .synch_clear(1'b0), .synch_preset(1'b0), 
        .synch_toggle(1'b0), .synch_enable(N165) );
  \**SEQGEN**  \round_counter_reg[3]  ( .clear(1'b0), .preset(1'b0), 
        .next_state(N78), .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(
        round_counter[3]), .QN(), .synch_clear(1'b0), .synch_preset(1'b0), 
        .synch_toggle(1'b0), .synch_enable(N165) );
  \**SEQGEN**  \round_counter_reg[2]  ( .clear(1'b0), .preset(1'b0), 
        .next_state(N77), .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(
        round_counter[2]), .QN(), .synch_clear(1'b0), .synch_preset(1'b0), 
        .synch_toggle(1'b0), .synch_enable(N165) );
  \**SEQGEN**  \round_counter_reg[1]  ( .clear(1'b0), .preset(1'b0), 
        .next_state(N76), .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(
        round_counter[1]), .QN(), .synch_clear(1'b0), .synch_preset(1'b0), 
        .synch_toggle(1'b0), .synch_enable(N165) );
  \**SEQGEN**  \round_counter_reg[0]  ( .clear(1'b0), .preset(1'b0), 
        .next_state(N75), .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(
        round_counter[0]), .QN(), .synch_clear(1'b0), .synch_preset(1'b0), 
        .synch_toggle(1'b0), .synch_enable(N165) );
  \**SEQGEN**  \key_reg[79]  ( .clear(1'b0), .preset(1'b0), .next_state(N163), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[79]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[78]  ( .clear(1'b0), .preset(1'b0), .next_state(N162), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[78]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[77]  ( .clear(1'b0), .preset(1'b0), .next_state(N161), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[77]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[76]  ( .clear(1'b0), .preset(1'b0), .next_state(N160), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[76]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[75]  ( .clear(1'b0), .preset(1'b0), .next_state(N159), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[75]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[74]  ( .clear(1'b0), .preset(1'b0), .next_state(N158), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[74]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[73]  ( .clear(1'b0), .preset(1'b0), .next_state(N157), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[73]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[72]  ( .clear(1'b0), .preset(1'b0), .next_state(N156), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[72]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[71]  ( .clear(1'b0), .preset(1'b0), .next_state(N155), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[71]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[70]  ( .clear(1'b0), .preset(1'b0), .next_state(N154), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[70]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[69]  ( .clear(1'b0), .preset(1'b0), .next_state(N153), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[69]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[68]  ( .clear(1'b0), .preset(1'b0), .next_state(N152), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[68]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[67]  ( .clear(1'b0), .preset(1'b0), .next_state(N151), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[67]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[66]  ( .clear(1'b0), .preset(1'b0), .next_state(N150), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[66]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[65]  ( .clear(1'b0), .preset(1'b0), .next_state(N149), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[65]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[64]  ( .clear(1'b0), .preset(1'b0), .next_state(N148), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[64]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[63]  ( .clear(1'b0), .preset(1'b0), .next_state(N147), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[63]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[62]  ( .clear(1'b0), .preset(1'b0), .next_state(N146), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[62]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[61]  ( .clear(1'b0), .preset(1'b0), .next_state(N145), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[61]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[60]  ( .clear(1'b0), .preset(1'b0), .next_state(N144), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[60]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[59]  ( .clear(1'b0), .preset(1'b0), .next_state(N143), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[59]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[58]  ( .clear(1'b0), .preset(1'b0), .next_state(N142), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[58]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[57]  ( .clear(1'b0), .preset(1'b0), .next_state(N141), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[57]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[56]  ( .clear(1'b0), .preset(1'b0), .next_state(N140), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[56]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[55]  ( .clear(1'b0), .preset(1'b0), .next_state(N139), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[55]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[54]  ( .clear(1'b0), .preset(1'b0), .next_state(N138), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[54]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[53]  ( .clear(1'b0), .preset(1'b0), .next_state(N137), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[53]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[52]  ( .clear(1'b0), .preset(1'b0), .next_state(N136), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[52]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[51]  ( .clear(1'b0), .preset(1'b0), .next_state(N135), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[51]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[50]  ( .clear(1'b0), .preset(1'b0), .next_state(N134), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[50]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[49]  ( .clear(1'b0), .preset(1'b0), .next_state(N133), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[49]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[48]  ( .clear(1'b0), .preset(1'b0), .next_state(N132), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[48]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[47]  ( .clear(1'b0), .preset(1'b0), .next_state(N131), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[47]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[46]  ( .clear(1'b0), .preset(1'b0), .next_state(N130), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[46]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[45]  ( .clear(1'b0), .preset(1'b0), .next_state(N129), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[45]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[44]  ( .clear(1'b0), .preset(1'b0), .next_state(N128), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[44]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[43]  ( .clear(1'b0), .preset(1'b0), .next_state(N127), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[43]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[42]  ( .clear(1'b0), .preset(1'b0), .next_state(N126), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[42]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[41]  ( .clear(1'b0), .preset(1'b0), .next_state(N125), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[41]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[40]  ( .clear(1'b0), .preset(1'b0), .next_state(N124), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[40]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[39]  ( .clear(1'b0), .preset(1'b0), .next_state(N123), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[39]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[38]  ( .clear(1'b0), .preset(1'b0), .next_state(N122), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[38]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[37]  ( .clear(1'b0), .preset(1'b0), .next_state(N121), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[37]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[36]  ( .clear(1'b0), .preset(1'b0), .next_state(N120), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[36]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[35]  ( .clear(1'b0), .preset(1'b0), .next_state(N119), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[35]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[34]  ( .clear(1'b0), .preset(1'b0), .next_state(N118), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[34]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[33]  ( .clear(1'b0), .preset(1'b0), .next_state(N117), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[33]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[32]  ( .clear(1'b0), .preset(1'b0), .next_state(N116), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[32]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[31]  ( .clear(1'b0), .preset(1'b0), .next_state(N115), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[31]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[30]  ( .clear(1'b0), .preset(1'b0), .next_state(N114), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[30]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N113) );
  \**SEQGEN**  \key_reg[29]  ( .clear(1'b0), .preset(1'b0), .next_state(N112), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[29]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[28]  ( .clear(1'b0), .preset(1'b0), .next_state(N111), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[28]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[27]  ( .clear(1'b0), .preset(1'b0), .next_state(N110), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[27]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[26]  ( .clear(1'b0), .preset(1'b0), .next_state(N109), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[26]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[25]  ( .clear(1'b0), .preset(1'b0), .next_state(N108), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[25]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[24]  ( .clear(1'b0), .preset(1'b0), .next_state(N107), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[24]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[23]  ( .clear(1'b0), .preset(1'b0), .next_state(N106), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[23]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[22]  ( .clear(1'b0), .preset(1'b0), .next_state(N105), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[22]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[21]  ( .clear(1'b0), .preset(1'b0), .next_state(N104), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[21]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[20]  ( .clear(1'b0), .preset(1'b0), .next_state(N103), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[20]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[19]  ( .clear(1'b0), .preset(1'b0), .next_state(N102), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[19]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[18]  ( .clear(1'b0), .preset(1'b0), .next_state(N101), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[18]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[17]  ( .clear(1'b0), .preset(1'b0), .next_state(N100), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[17]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[16]  ( .clear(1'b0), .preset(1'b0), .next_state(N99), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[16]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[15]  ( .clear(1'b0), .preset(1'b0), .next_state(N98), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[15]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[14]  ( .clear(1'b0), .preset(1'b0), .next_state(N97), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[14]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[13]  ( .clear(1'b0), .preset(1'b0), .next_state(N96), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[13]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[12]  ( .clear(1'b0), .preset(1'b0), .next_state(N95), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[12]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[11]  ( .clear(1'b0), .preset(1'b0), .next_state(N94), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[11]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[10]  ( .clear(1'b0), .preset(1'b0), .next_state(N93), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[10]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[9]  ( .clear(1'b0), .preset(1'b0), .next_state(N92), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[9]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[8]  ( .clear(1'b0), .preset(1'b0), .next_state(N91), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[8]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[7]  ( .clear(1'b0), .preset(1'b0), .next_state(N90), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[7]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[6]  ( .clear(1'b0), .preset(1'b0), .next_state(N89), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[6]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[5]  ( .clear(1'b0), .preset(1'b0), .next_state(N88), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[5]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[4]  ( .clear(1'b0), .preset(1'b0), .next_state(N87), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[4]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[3]  ( .clear(1'b0), .preset(1'b0), .next_state(N86), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[3]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[2]  ( .clear(1'b0), .preset(1'b0), .next_state(N85), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[2]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[1]  ( .clear(1'b0), .preset(1'b0), .next_state(N84), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[1]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \key_reg[0]  ( .clear(1'b0), .preset(1'b0), .next_state(N83), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(key[0]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N82) );
  \**SEQGEN**  \state_reg[63]  ( .clear(1'b0), .preset(1'b0), .next_state(N72), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[63]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[62]  ( .clear(1'b0), .preset(1'b0), .next_state(N71), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[62]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[61]  ( .clear(1'b0), .preset(1'b0), .next_state(N70), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[61]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[60]  ( .clear(1'b0), .preset(1'b0), .next_state(N69), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[60]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[59]  ( .clear(1'b0), .preset(1'b0), .next_state(N68), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[59]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[58]  ( .clear(1'b0), .preset(1'b0), .next_state(N67), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[58]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[57]  ( .clear(1'b0), .preset(1'b0), .next_state(N66), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[57]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[56]  ( .clear(1'b0), .preset(1'b0), .next_state(N65), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[56]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[55]  ( .clear(1'b0), .preset(1'b0), .next_state(N64), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[55]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[54]  ( .clear(1'b0), .preset(1'b0), .next_state(N63), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[54]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[53]  ( .clear(1'b0), .preset(1'b0), .next_state(N62), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[53]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[52]  ( .clear(1'b0), .preset(1'b0), .next_state(N61), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[52]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[51]  ( .clear(1'b0), .preset(1'b0), .next_state(N60), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[51]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[50]  ( .clear(1'b0), .preset(1'b0), .next_state(N59), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[50]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[49]  ( .clear(1'b0), .preset(1'b0), .next_state(N58), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[49]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[48]  ( .clear(1'b0), .preset(1'b0), .next_state(N57), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[48]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[47]  ( .clear(1'b0), .preset(1'b0), .next_state(N56), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[47]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[46]  ( .clear(1'b0), .preset(1'b0), .next_state(N55), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[46]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[45]  ( .clear(1'b0), .preset(1'b0), .next_state(N54), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[45]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[44]  ( .clear(1'b0), .preset(1'b0), .next_state(N53), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[44]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[43]  ( .clear(1'b0), .preset(1'b0), .next_state(N52), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[43]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[42]  ( .clear(1'b0), .preset(1'b0), .next_state(N51), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[42]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[41]  ( .clear(1'b0), .preset(1'b0), .next_state(N50), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[41]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[40]  ( .clear(1'b0), .preset(1'b0), .next_state(N49), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[40]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[39]  ( .clear(1'b0), .preset(1'b0), .next_state(N48), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[39]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[38]  ( .clear(1'b0), .preset(1'b0), .next_state(N47), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[38]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[37]  ( .clear(1'b0), .preset(1'b0), .next_state(N46), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[37]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[36]  ( .clear(1'b0), .preset(1'b0), .next_state(N45), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[36]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[35]  ( .clear(1'b0), .preset(1'b0), .next_state(N44), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[35]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[34]  ( .clear(1'b0), .preset(1'b0), .next_state(N43), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[34]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[33]  ( .clear(1'b0), .preset(1'b0), .next_state(N42), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[33]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[32]  ( .clear(1'b0), .preset(1'b0), .next_state(N41), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[32]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[31]  ( .clear(1'b0), .preset(1'b0), .next_state(N40), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[31]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[30]  ( .clear(1'b0), .preset(1'b0), .next_state(N39), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[30]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[29]  ( .clear(1'b0), .preset(1'b0), .next_state(N38), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[29]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[28]  ( .clear(1'b0), .preset(1'b0), .next_state(N37), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[28]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[27]  ( .clear(1'b0), .preset(1'b0), .next_state(N36), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[27]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[26]  ( .clear(1'b0), .preset(1'b0), .next_state(N35), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[26]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[25]  ( .clear(1'b0), .preset(1'b0), .next_state(N34), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[25]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[24]  ( .clear(1'b0), .preset(1'b0), .next_state(N33), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[24]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[23]  ( .clear(1'b0), .preset(1'b0), .next_state(N32), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[23]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[22]  ( .clear(1'b0), .preset(1'b0), .next_state(N31), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[22]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[21]  ( .clear(1'b0), .preset(1'b0), .next_state(N30), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[21]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[20]  ( .clear(1'b0), .preset(1'b0), .next_state(N29), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[20]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[19]  ( .clear(1'b0), .preset(1'b0), .next_state(N28), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[19]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[18]  ( .clear(1'b0), .preset(1'b0), .next_state(N27), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[18]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[17]  ( .clear(1'b0), .preset(1'b0), .next_state(N26), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[17]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[16]  ( .clear(1'b0), .preset(1'b0), .next_state(N25), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[16]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[15]  ( .clear(1'b0), .preset(1'b0), .next_state(N24), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[15]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[14]  ( .clear(1'b0), .preset(1'b0), .next_state(N23), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[14]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[13]  ( .clear(1'b0), .preset(1'b0), .next_state(N22), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[13]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[12]  ( .clear(1'b0), .preset(1'b0), .next_state(N21), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[12]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[11]  ( .clear(1'b0), .preset(1'b0), .next_state(N20), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[11]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[10]  ( .clear(1'b0), .preset(1'b0), .next_state(N19), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[10]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[9]  ( .clear(1'b0), .preset(1'b0), .next_state(N18), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[9]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[8]  ( .clear(1'b0), .preset(1'b0), .next_state(N17), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[8]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[7]  ( .clear(1'b0), .preset(1'b0), .next_state(N16), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[7]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[6]  ( .clear(1'b0), .preset(1'b0), .next_state(N15), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[6]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[5]  ( .clear(1'b0), .preset(1'b0), .next_state(N14), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[5]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[4]  ( .clear(1'b0), .preset(1'b0), .next_state(N13), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[4]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[3]  ( .clear(1'b0), .preset(1'b0), .next_state(N12), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[3]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[2]  ( .clear(1'b0), .preset(1'b0), .next_state(N11), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[2]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[1]  ( .clear(1'b0), .preset(1'b0), .next_state(N10), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[1]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  \**SEQGEN**  \state_reg[0]  ( .clear(1'b0), .preset(1'b0), .next_state(N9), 
        .clocked_on(clk), .data_in(1'b0), .enable(1'b0), .Q(state[0]), .QN(), 
        .synch_clear(1'b0), .synch_preset(1'b0), .synch_toggle(1'b0), 
        .synch_enable(N165) );
  GTECH_OR2 C983 ( .A(round_counter[3]), .B(round_counter[4]), .Z(N166) );
  GTECH_OR2 C984 ( .A(round_counter[2]), .B(N166), .Z(N167) );
  GTECH_OR2 C985 ( .A(round_counter[1]), .B(N167), .Z(N168) );
  GTECH_OR2 C986 ( .A(round_counter[0]), .B(N168), .Z(N169) );
  GTECH_NOT I_0 ( .A(N169), .Z(N170) );
  ADD_UNS_OP add_74_aco ( .A({N175, N174, N173, N172, N171}), .B(1'b1), .Z({
        N79, N78, N77, N76, N75}) );
  SELECT_OP C990 ( .DATA1(data_i[63:0]), .DATA2(sub_per_output), .CONTROL1(N0), 
        .CONTROL2(N1), .Z({N72, N71, N70, N69, N68, N67, N66, N65, N64, N63, 
        N62, N61, N60, N59, N58, N57, N56, N55, N54, N53, N52, N51, N50, N49, 
        N48, N47, N46, N45, N44, N43, N42, N41, N40, N39, N38, N37, N36, N35, 
        N34, N33, N32, N31, N30, N29, N28, N27, N26, N25, N24, N23, N22, N21, 
        N20, N19, N18, N17, N16, N15, N14, N13, N12, N11, N10, N9}) );
  GTECH_BUF B_0 ( .A(data_load), .Z(N0) );
  GTECH_BUF B_1 ( .A(N6), .Z(N1) );
  SELECT_OP C991 ( .DATA1(1'b1), .DATA2(N170), .CONTROL1(N0), .CONTROL2(N1), 
        .Z(N73) );
  SELECT_OP C992 ( .DATA1(1'b1), .DATA2(N169), .CONTROL1(N0), .CONTROL2(N1), 
        .Z(N74) );
  SELECT_OP C994 ( .DATA1({1'b0, 1'b0}), .DATA2({N169, N169}), .CONTROL1(N0), 
        .CONTROL2(N1), .Z({N81, N80}) );
  SELECT_OP C995 ( .DATA1({1'b1, 1'b1}), .DATA2({N81, N80}), .CONTROL1(N2), 
        .CONTROL2(N3), .Z({N113, N82}) );
  GTECH_BUF B_2 ( .A(key_load), .Z(N2) );
  GTECH_BUF B_3 ( .A(N4), .Z(N3) );
  SELECT_OP C996 ( .DATA1(data_i), .DATA2(key_update_output), .CONTROL1(N2), 
        .CONTROL2(N3), .Z({N163, N162, N161, N160, N159, N158, N157, N156, 
        N155, N154, N153, N152, N151, N150, N149, N148, N147, N146, N145, N144, 
        N143, N142, N141, N140, N139, N138, N137, N136, N135, N134, N133, N132, 
        N131, N130, N129, N128, N127, N126, N125, N124, N123, N122, N121, N120, 
        N119, N118, N117, N116, N115, N114, N112, N111, N110, N109, N108, N107, 
        N106, N105, N104, N103, N102, N101, N100, N99, N98, N97, N96, N95, N94, 
        N93, N92, N91, N90, N89, N88, N87, N86, N85, N84, N83}) );
  SELECT_OP C997 ( .DATA1(1'b0), .DATA2(N73), .CONTROL1(N2), .CONTROL2(N3), 
        .Z(N164) );
  SELECT_OP C998 ( .DATA1(1'b0), .DATA2(N74), .CONTROL1(N2), .CONTROL2(N3), 
        .Z(N165) );
  MULT_UNS_OP mult_add_74_aco ( .A(round_counter), .B(N6), .Z({N175, N174, 
        N173, N172, N171}) );
  GTECH_XOR2 C1003 ( .A(state[63]), .B(key[79]), .Z(data_o[63]) );
  GTECH_XOR2 C1004 ( .A(state[62]), .B(key[78]), .Z(data_o[62]) );
  GTECH_XOR2 C1005 ( .A(state[61]), .B(key[77]), .Z(data_o[61]) );
  GTECH_XOR2 C1006 ( .A(state[60]), .B(key[76]), .Z(data_o[60]) );
  GTECH_XOR2 C1007 ( .A(state[59]), .B(key[75]), .Z(data_o[59]) );
  GTECH_XOR2 C1008 ( .A(state[58]), .B(key[74]), .Z(data_o[58]) );
  GTECH_XOR2 C1009 ( .A(state[57]), .B(key[73]), .Z(data_o[57]) );
  GTECH_XOR2 C1010 ( .A(state[56]), .B(key[72]), .Z(data_o[56]) );
  GTECH_XOR2 C1011 ( .A(state[55]), .B(key[71]), .Z(data_o[55]) );
  GTECH_XOR2 C1012 ( .A(state[54]), .B(key[70]), .Z(data_o[54]) );
  GTECH_XOR2 C1013 ( .A(state[53]), .B(key[69]), .Z(data_o[53]) );
  GTECH_XOR2 C1014 ( .A(state[52]), .B(key[68]), .Z(data_o[52]) );
  GTECH_XOR2 C1015 ( .A(state[51]), .B(key[67]), .Z(data_o[51]) );
  GTECH_XOR2 C1016 ( .A(state[50]), .B(key[66]), .Z(data_o[50]) );
  GTECH_XOR2 C1017 ( .A(state[49]), .B(key[65]), .Z(data_o[49]) );
  GTECH_XOR2 C1018 ( .A(state[48]), .B(key[64]), .Z(data_o[48]) );
  GTECH_XOR2 C1019 ( .A(state[47]), .B(key[63]), .Z(data_o[47]) );
  GTECH_XOR2 C1020 ( .A(state[46]), .B(key[62]), .Z(data_o[46]) );
  GTECH_XOR2 C1021 ( .A(state[45]), .B(key[61]), .Z(data_o[45]) );
  GTECH_XOR2 C1022 ( .A(state[44]), .B(key[60]), .Z(data_o[44]) );
  GTECH_XOR2 C1023 ( .A(state[43]), .B(key[59]), .Z(data_o[43]) );
  GTECH_XOR2 C1024 ( .A(state[42]), .B(key[58]), .Z(data_o[42]) );
  GTECH_XOR2 C1025 ( .A(state[41]), .B(key[57]), .Z(data_o[41]) );
  GTECH_XOR2 C1026 ( .A(state[40]), .B(key[56]), .Z(data_o[40]) );
  GTECH_XOR2 C1027 ( .A(state[39]), .B(key[55]), .Z(data_o[39]) );
  GTECH_XOR2 C1028 ( .A(state[38]), .B(key[54]), .Z(data_o[38]) );
  GTECH_XOR2 C1029 ( .A(state[37]), .B(key[53]), .Z(data_o[37]) );
  GTECH_XOR2 C1030 ( .A(state[36]), .B(key[52]), .Z(data_o[36]) );
  GTECH_XOR2 C1031 ( .A(state[35]), .B(key[51]), .Z(data_o[35]) );
  GTECH_XOR2 C1032 ( .A(state[34]), .B(key[50]), .Z(data_o[34]) );
  GTECH_XOR2 C1033 ( .A(state[33]), .B(key[49]), .Z(data_o[33]) );
  GTECH_XOR2 C1034 ( .A(state[32]), .B(key[48]), .Z(data_o[32]) );
  GTECH_XOR2 C1035 ( .A(state[31]), .B(key[47]), .Z(data_o[31]) );
  GTECH_XOR2 C1036 ( .A(state[30]), .B(key[46]), .Z(data_o[30]) );
  GTECH_XOR2 C1037 ( .A(state[29]), .B(key[45]), .Z(data_o[29]) );
  GTECH_XOR2 C1038 ( .A(state[28]), .B(key[44]), .Z(data_o[28]) );
  GTECH_XOR2 C1039 ( .A(state[27]), .B(key[43]), .Z(data_o[27]) );
  GTECH_XOR2 C1040 ( .A(state[26]), .B(key[42]), .Z(data_o[26]) );
  GTECH_XOR2 C1041 ( .A(state[25]), .B(key[41]), .Z(data_o[25]) );
  GTECH_XOR2 C1042 ( .A(state[24]), .B(key[40]), .Z(data_o[24]) );
  GTECH_XOR2 C1043 ( .A(state[23]), .B(key[39]), .Z(data_o[23]) );
  GTECH_XOR2 C1044 ( .A(state[22]), .B(key[38]), .Z(data_o[22]) );
  GTECH_XOR2 C1045 ( .A(state[21]), .B(key[37]), .Z(data_o[21]) );
  GTECH_XOR2 C1046 ( .A(state[20]), .B(key[36]), .Z(data_o[20]) );
  GTECH_XOR2 C1047 ( .A(state[19]), .B(key[35]), .Z(data_o[19]) );
  GTECH_XOR2 C1048 ( .A(state[18]), .B(key[34]), .Z(data_o[18]) );
  GTECH_XOR2 C1049 ( .A(state[17]), .B(key[33]), .Z(data_o[17]) );
  GTECH_XOR2 C1050 ( .A(state[16]), .B(key[32]), .Z(data_o[16]) );
  GTECH_XOR2 C1051 ( .A(state[15]), .B(key[31]), .Z(data_o[15]) );
  GTECH_XOR2 C1052 ( .A(state[14]), .B(key[30]), .Z(data_o[14]) );
  GTECH_XOR2 C1053 ( .A(state[13]), .B(key[29]), .Z(data_o[13]) );
  GTECH_XOR2 C1054 ( .A(state[12]), .B(key[28]), .Z(data_o[12]) );
  GTECH_XOR2 C1055 ( .A(state[11]), .B(key[27]), .Z(data_o[11]) );
  GTECH_XOR2 C1056 ( .A(state[10]), .B(key[26]), .Z(data_o[10]) );
  GTECH_XOR2 C1057 ( .A(state[9]), .B(key[25]), .Z(data_o[9]) );
  GTECH_XOR2 C1058 ( .A(state[8]), .B(key[24]), .Z(data_o[8]) );
  GTECH_XOR2 C1059 ( .A(state[7]), .B(key[23]), .Z(data_o[7]) );
  GTECH_XOR2 C1060 ( .A(state[6]), .B(key[22]), .Z(data_o[6]) );
  GTECH_XOR2 C1061 ( .A(state[5]), .B(key[21]), .Z(data_o[5]) );
  GTECH_XOR2 C1062 ( .A(state[4]), .B(key[20]), .Z(data_o[4]) );
  GTECH_XOR2 C1063 ( .A(state[3]), .B(key[19]), .Z(data_o[3]) );
  GTECH_XOR2 C1064 ( .A(state[2]), .B(key[18]), .Z(data_o[2]) );
  GTECH_XOR2 C1065 ( .A(state[1]), .B(key[17]), .Z(data_o[1]) );
  GTECH_XOR2 C1066 ( .A(state[0]), .B(key[16]), .Z(data_o[0]) );
  GTECH_NOT I_1 ( .A(key_load), .Z(N4) );
  GTECH_BUF B_4 ( .A(N4), .Z(N5) );
  GTECH_NOT I_2 ( .A(data_load), .Z(N6) );
  GTECH_AND2 C1074 ( .A(N5), .B(N6), .Z(N7) );
  GTECH_AND2 C1077 ( .A(N7), .B(N169), .Z(N8) );
  GTECH_OR2 C1078 ( .A(N8), .B(data_load), .Z() );
endmodule

